package com.group56;

import javafx.application.Application;
import javafx.application.Platform;

import javafx.stage.Stage;

/**
 * 和GymApp是并列关系，通过生成新的stage分配给各个模块的启动类来管理页面跳转。
 */
public class MainApp extends Application {
    //我们的主程序设置为同一时间屏幕内只显示一个窗口，该窗口被标识为primaryStage
    //MainApp维护多个子模块，给每个模块分配一个stage，要用到时就show，不用的时候hide
    public static Stage primaryStage;
    public static Stage customerInfoStage;//1
    public static Stage videoStage;
    public static Stage scheduleListStage;//2
    public static Stage coachListStage;//3

    //存一个全局共享的customer id
    public static String customerId="1";

    //new了三个左边栏的app，主显示用户界面
    //在MainApp里创建多个stage，然后new时调用对应applicaiton的start方法，将其stage传入
    //showPrimaryStage：隐藏原来的stage，打开传进来的stage，都是在primaryStage上操作，而每个传入的stage时已经在mainapp里加载好的stage？
    //创建了多个stage，利用sps方法轮番取代ps然后show出来
    //首先将customer界面show了出来
    @Override
    public void start(Stage stage) throws Exception {
        //启动UserInfo模块
        customerInfoStage = stage;
        new UserInfoModuleApp().start(customerInfoStage);
        scheduleListStage = new Stage();
        new ScheduleModuleApp().start(scheduleListStage);
        coachListStage = new Stage();
        new BookModuleApp().start(coachListStage);

        MainApp.showPrimaryStage(customerInfoStage);
    }

    public static void main(String[] args) {
        launch();
    }

    public static void showPrimaryStage(Stage stage){
        if(primaryStage!=null)
            primaryStage.hide();
        primaryStage = stage;//切换primary
        primaryStage.show();
        //primaryStage点击关闭按钮，整个程序就会退出
        primaryStage.setOnCloseRequest((event)-> Platform.exit());
    }
}
